package com.jmonkey.office.lexi.support;
import java.awt.BorderLayout;
import java.awt.Component;
import java.awt.Container;
import java.awt.Graphics;
import javax.swing.AbstractButton;
import javax.swing.BorderFactory;
import javax.swing.ButtonModel;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.border.BevelBorder;
import javax.swing.border.Border;
import javax.swing.border.CompoundBorder;
public class ButtonBorder extends CompoundBorder {
static ButtonBevelBorder bbb = new ButtonBevelBorder();
static Border ebb = BorderFactory.createEmptyBorder(2,2,2,2);
static class ButtonBevelBorder extends BevelBorder {
public ButtonBevelBorder() {
super( RAISED );
}
public void paintBorder(Component c, Graphics g, int x, int y, int width, int height) {
bevelType = RAISED;
if (c instanceof AbstractButton) {
ButtonModel model = ((AbstractButton)c).getModel();
boolean pressed = model.isPressed();
bevelType = (pressed ? LOWERED : RAISED);
}
super.paintBorder(c, g, x, y, width, height);
}
}
public ButtonBorder() {
super( bbb, ebb );
}
public static void main(String args[]) {
JFrame frame = new JFrame("Bevel Button Border");
Border border = new ButtonBorder();
JButton helloButton = new JButton ("Hello");
helloButton.setBorder(border);
JButton worldButton = new JButton ("World");
Container contentPane = frame.getContentPane();
contentPane.add(helloButton, BorderLayout.NORTH);
contentPane.add(worldButton, BorderLayout.SOUTH);
frame.setSize(300, 100);
frame.setVisible(true);
}
}